<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>vfs_gpfs</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" title="vfs_gpfs"><a name="vfs_gpfs.8"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>vfs_gpfs &#8212; gpfs specific samba extensions like acls and prealloc</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="literal">vfs objects = gpfs</code></p></div></div><div class="refsect1" title="DESCRIPTION"><a name="id266339"></a><h2>DESCRIPTION</h2><p>This VFS module is part of the
	<a class="citerefentry" href="samba.7.html"><span class="citerefentry"><span class="refentrytitle">samba</span>(7)</span></a> suite.</p><p>The <code class="literal">gpfs</code> VFS module is the home
	for all gpfs extensions that Samba requires for proper integration
	with GPFS. It uses the GPL library interfaces provided by GPFS.
	</p><p>Currently the gpfs vfs module provides extensions in following areas :
	</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>NFSv4 ACL Interfaces with configurable options for GPFS</p></li><li class="listitem"><p>Kernel oplock support on GPFS</p></li><li class="listitem"><p>Lease support on GPFS</p></li></ul></div><p>
	</p><p><code class="literal">NOTE:</code>This module follows the posix-acl behaviour
	and hence allows permission stealing via chown. Samba might allow at a later
	point in time, to restrict the chown via this module as such restrictions
	are the responsibility of the underlying filesystem than of Samba.
	</p><p>This module is stackable.</p></div><div class="refsect1" title="OPTIONS"><a name="id266858"></a><h2>OPTIONS</h2><div class="variablelist"><dl><dt><span class="term">gpfs:sharemodes = [ yes | no ]</span></dt><dd><p>
		Enable/Disable cross node sharemode handling for GPFS.
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
		<code class="literal">yes(default)</code> - propagate sharemodes across all GPFS nodes.
		</p></li><li class="listitem"><p>
		<code class="literal">no</code> - do not propagate sharemodes across all GPFS nodes.
		This should only be used if the GPFS file system is
		exclusively exported by Samba. Access by local unix application or
		NFS exports could lead to corrupted files.
		</p></li></ul></div></dd><dt><span class="term">gpfs:leases = [ yes | no ]</span></dt><dd><p>
		Enable/Disable cross node leases (oplocks) for GPFS.
		You should also set the <code class="literal">oplocks</code> and <code class="literal">kernel oplocks</code>
		options to the same value.
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
		<code class="literal">yes(default)</code> - propagate leases across all GPFS nodes.
		</p></li><li class="listitem"><p>
		<code class="literal">no</code> - do not propagate leases across all GPFS nodes.
		This should only be used if the GPFS file system is
		exclusively exported by Samba. Access by local unix application or
		NFS exports could lead to corrupted files.
		</p></li></ul></div></dd><dt><span class="term">gpfs:hsm = [ yes | no ]</span></dt><dd><p>
		Enable/Disable announcing if this FS has HSM enabled.
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
		<code class="literal">no(default)</code> - Do not announce HSM.
		</p></li><li class="listitem"><p>
		<code class="literal">no</code> - Announce HSM.
		</p></li></ul></div></dd><dt><span class="term">gpfs:getrealfilename = [ yes | no ]</span></dt><dd><p>
		Enable/Disable usage of the <code class="literal">gpfs_get_realfilename_path()</code> function.
		This improves the casesensitive wildcard file name access.
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
		<code class="literal">yes(default)</code> - use <code class="literal">gpfs_get_realfilename_path()</code>.
		</p></li><li class="listitem"><p>
		<code class="literal">no</code> - do not use <code class="literal">gpfs_get_realfilename_path()</code>.
		It seems that <code class="literal">gpfs_get_realfilename_path()</code> doesn't work on AIX.
		</p></li></ul></div></dd><dt><span class="term">gpfs:winattr = [ yes | no ]</span></dt><dd><p>
		Enable/Disable usage of the windows attributes in GPFS.
		GPFS is able to store windows file attributes e.g. HIDDEN,
		READONLY, SYSTEM and others natively. That means Samba doesn't
		need to map them to permission bits or extended attributes.
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
		<code class="literal">no(default)</code> - do not use GPFS windows attributes.
		</p></li><li class="listitem"><p>
		<code class="literal">yes</code> - use GPFS windows attributes.
		</p></li></ul></div></dd><dt><span class="term">gpfs:merge_writeappend = [ yes | no ]</span></dt><dd><p>
		GPFS ACLs doesn't know about the 'APPEND' right.
		This optionen lets Samba map the 'APPEND' right to 'WRITE'.
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
		<code class="literal">yes(default)</code> - map 'APPEND' to 'WRITE'.
		</p></li><li class="listitem"><p>
		<code class="literal">no</code> - do not map 'APPEND' to 'WRITE'.
		</p></li></ul></div></dd><dt><span class="term">gpfs:refuse_dacl_protected = [ yes | no ]</span></dt><dd><p>
		As GPFS does not support the ACE4_FLAG_NO_PROPAGATE NFSv4 flag (which would be
		the mapping for the DESC_DACL_PROTECTED flag), the status of this flag is
		currently silently ignored by Samba. That means that if you deselect the "Allow
		inheritable permissions..." checkbox in Windows' ACL dialog and then apply the
		ACL, the flag will be back immediately.
		</p><p>
		To make sure that automatic migration with e.g. robocopy does not lead to
		ACLs silently (and unintentionally) changed, you can set
		<code class="literal">gpfs:refuse_dacl_protected = yes</code> to enable an explicit
		check for this flag and if set, it will return NT_STATUS_NOT_SUPPORTED so
		errors are shown up on the Windows side and the Administrator is aware of
		the ACLs not being settable like intended
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
		<code class="literal">no(default)</code> - ignore the DESC_DACL_PROTECTED flags.
		</p></li><li class="listitem"><p>
		<code class="literal">yes</code> - reject ACLs with DESC_DACL_PROTECTED.
		</p></li></ul></div></dd><dt><span class="term">nfs4:mode = [ simple | special ]</span></dt><dd><p>
		Enable/Disable substitution of special IDs on GPFS. This parameter
		should not affect the windows users in anyway. It only ensures that Samba
		sets the special IDs - OWNER@ and GROUP@ ( mappings to simple uids )
		that are relevant to GPFS.
		</p><p>The following MODEs are understood by the module:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">simple(default)</code> - do not use special IDs in GPFS ACEs</p></li><li class="listitem"><p><code class="literal">special</code> - use special IDs in GPFS ACEs. </p></li></ul></div></dd><dt><span class="term">nfs4:acedup = [dontcare|reject|ignore|merge]</span></dt><dd><p>
		This parameter configures how Samba handles duplicate ACEs encountered in GPFS ACLs.
		GPFS allows/creates duplicate ACE for different bits for same ID.
		</p><p>Following is the behaviour of Samba for different values :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">dontcare (default)</code> - copy the ACEs as they come</p></li><li class="listitem"><p><code class="literal">reject</code> - stop operation and exit with error on ACL set op</p></li><li class="listitem"><p><code class="literal">ignore</code> - don't include the second matching ACE</p></li><li class="listitem"><p><code class="literal">merge</code> - bitwise OR the 2 ace.flag fields and 2 ace.mask fields of the 2 duplicate ACEs into 1 ACE</p></li></ul></div></dd><dt><span class="term">nfs4:chown = [yes|no]</span></dt><dd><p>This parameter allows enabling or disabling the chown supported
		by the underlying filesystem. This parameter should be enabled with
		care as it might leave your system insecure.</p><p>Some filesystems allow chown as a) giving b) stealing. It is the latter
		that is considered a risk.</p><p>Following is the behaviour of Samba for different values : </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">yes</code> - Enable chown if as supported by the under filesystem</p></li><li class="listitem"><p><code class="literal">no (default)</code> - Disable chown</p></li></ul></div></dd><dt><span class="term">gpfs:syncio = [yes|no]</span></dt><dd><p>This parameter makes Samba open all files with O_SYNC.
		  This triggers optimizations in GPFS for workloads that
		  heavily share files.</p><p>Following is the behaviour of Samba for different
		  values:
		</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="literal">yes</code>Open files with O_SYNC
		</p></li><li class="listitem"><p><code class="literal">no (default)</code>Open files as
		    normal Samba would do
		</p></li></ul></div></dd></dl></div></div><div class="refsect1" title="EXAMPLES"><a name="id307209"></a><h2>EXAMPLES</h2><p>A GPFS mount can be exported via Samba as follows :</p><pre class="programlisting">
        <em class="parameter"><code>[samba_gpfs_share]</code></em>
	<a class="link" href="smb.conf.5.html#VFSOBJECTS" target="_top">vfs objects = gpfs</a>
	<a class="link" href="smb.conf.5.html#PATH" target="_top">path = /test/gpfs_mount</a>
	<a class="link" href="smb.conf.5.html#NFS4:MODE" target="_top">nfs4: mode = special</a>
	<a class="link" href="smb.conf.5.html#NFS4:ACEDUP" target="_top">nfs4: acedup = merge</a>
</pre></div><div class="refsect1" title="CAVEATS"><a name="id307362"></a><h2>CAVEATS</h2><p>
	Depending on the version of gpfs, the <code class="literal">libgpfs_gpl</code>
	library or the <code class="literal">libgpfs</code> library is needed at
	runtime by the <code class="literal">gpfs</code> VFS module:
	Starting with gpfs 3.2.1 PTF8, the complete <code class="literal">libgpfs</code>
	is available as open source and <code class="literal">libgpfs_gpl</code> does no
	longer exist. With earlier versions of gpfs, only the
	<code class="literal">libgpfs_gpl</code> library was open source and could be
	used at run time.
	</p><p>
	At build time, only the header file <code class="literal">gpfs_gpl.h</code>
	is required , which is a symlink to <code class="literal">gpfs.h</code> in
	gpfs versions newer than 3.2.1 PTF8.
	</p></div><div class="refsect1" title="VERSION"><a name="id307417"></a><h2>VERSION</h2><p>This man page is correct for version 3.0.25 of the Samba suite.
	</p></div><div class="refsect1" title="AUTHOR"><a name="id307426"></a><h2>AUTHOR</h2><p>The original Samba software and related utilities
	were created by Andrew Tridgell. Samba is now developed
	by the Samba Team as an Open Source project similar
	to the way the Linux kernel is developed.</p><p>The GPFS VFS module was created with contributions from
	Volker Lendecke and the developers at IBM.
	</p><p> This manpage was created by the IBM FSCC team </p></div></div></body></html>
